package main

import "fmt"

func main() {
	messages := make(chan string, 2)
	go func() {
		// 这里首先 messages 是一个闭包
		// 之后会向其中发送一条信息 使用 <-
		messages <- "ping"
		messages <- "pong"
	}()

	// 为何 chan 收发不能在同一个协程中?
	// 默认的情况下，发送请求会阻塞整个协程
	// 因此如果在同一个协程中存在，会出现死锁
	// 但是 如果是有 buf 的 chan 就不会出现死锁
	msg := <-messages
	fmt.Println(msg)

	msg = <-messages
	fmt.Println(msg)
}
